/**
 * @param {number[]} nums
 * @return {number}
 */
var rob = function(nums) {
  // 一、代码思路一
  // let arr = new Array(nums.length).fill();
  // // 1. 第一天不偷, 第二天偷
  // let temp = new Array(2);
  // temp[0] = 0, temp[1] = nums[0];
  // arr[0] = [...temp];
  // for(let i = 1; i < nums.length; i++) {
  //   temp = [];
  //   // 2.第二天不偷，最大值为（上一天偷或上一天不偷）
  //   temp[0] = Math.max(arr[i - 1][0], arr[i - 1][1]);
  //   // 3.第二天偷，则上一天必定没偷
  //   temp[1] = arr[i - 1][0] + nums[i];
  //   arr[i] = [...temp];
  // }
  // return Math.max(arr[nums.length - 1][0], arr[nums.length - 1][1]);

  // 二、代码思路二
  let noSteal = 0, steal = nums[0];
  for(let i = 1; i < nums.length; i++) {
    let temp = noSteal;
    noSteal = Math.max(noSteal, steal);
    steal = temp + nums[i];
  }
  return Math.max(noSteal, steal);
};
let nums = [1,2,3,1];
console.log(rob(nums));
nums = [2,7,9,3,1];
console.log(rob(nums));
